home *** CD-ROM | disk | FTP | other *** search
- package Box2D.Dynamics
- {
- import Box2D.Collision.Shapes._fh319;
- import Box2D.Collision.Shapes._hx306;
- import Box2D.Collision.Shapes._sw544;
- import Box2D.Common.Math._bf172;
- import Box2D.Common.Math._ni781;
- import Box2D.Common.Math._oh327;
- import Box2D.Common.Math._ui293;
- import Box2D.Common.Math.b2Vec2;
- import Box2D.Dynamics.Contacts._eg754;
- import Box2D.Dynamics.Joints._gs664;
-
- public class _th791
- {
- private static var s_massData:_fh319 = new _fh319();
-
- private static var s_xf1:_ni781 = new _ni781();
-
- public static var e_frozenFlag:uint = 2;
-
- public static var e_islandFlag:uint = 4;
-
- public static var e_sleepFlag:uint = 8;
-
- public static var e_allowSleepFlag:uint = 16;
-
- public static var e_bulletFlag:uint = 32;
-
- public static var e_fixedRotationFlag:uint = 64;
-
- public static var e_staticType:uint = 1;
-
- public static var e_dynamicType:uint = 2;
-
- public static var e_maxTypes:uint = 3;
-
- public var m_next:_th791;
-
- public var m_contactList:_eg754;
-
- public var m_angularVelocity:Number;
-
- public var m_mass:Number;
-
- public var m_force:b2Vec2;
-
- public var m_sweep:_bf172;
-
- public var m_xf:_ni781;
-
- public var m_torque:Number;
-
- public var m_shapeList:_hx306;
-
- public var m_flags:uint;
-
- public var m_invI:Number;
-
- public var m_invMass:Number;
-
- public var m_linearVelocity:b2Vec2;
-
- public var m_prev:_th791;
-
- public var m_userData:*;
-
- public var m_linearDamping:Number;
-
- public var m_type:int;
-
- public var m_world:_fp437;
-
- public var m_angularDamping:Number;
-
- public var m_shapeCount:int;
-
- public var m_jointList:_gs664;
-
- public var m_I:Number;
-
- public var m_sleepTime:Number;
-
- public function _th791(param1:_qh446, param2:_fp437)
- {
- var _loc3_:_oh327 = null;
- var _loc4_:b2Vec2 = null;
- m_xf = new _ni781();
- m_sweep = new _bf172();
- m_linearVelocity = new b2Vec2();
- m_force = new b2Vec2();
- super();
- m_flags = 0;
- if(param1.isBullet)
- {
- m_flags |= e_bulletFlag;
- }
- if(param1.fixedRotation)
- {
- m_flags |= e_fixedRotationFlag;
- }
- if(param1.allowSleep)
- {
- m_flags |= e_allowSleepFlag;
- }
- if(param1.isSleeping)
- {
- m_flags |= e_sleepFlag;
- }
- m_world = param2;
- m_xf.position._kh737(param1.position);
- m_xf.R._br741(param1.angle);
- m_sweep.localCenter._kh737(param1.massData.center);
- m_sweep.t0 = 1;
- m_sweep.a0 = m_sweep.a = param1.angle;
- _loc3_ = m_xf.R;
- _loc4_ = m_sweep.localCenter;
- m_sweep.c.x = _loc3_.col1.x * _loc4_.x + _loc3_.col2.x * _loc4_.y;
- m_sweep.c.y = _loc3_.col1.y * _loc4_.x + _loc3_.col2.y * _loc4_.y;
- m_sweep.c.x += m_xf.position.x;
- m_sweep.c.y += m_xf.position.y;
- m_sweep.c0._kh737(m_sweep.c);
- m_jointList = null;
- m_contactList = null;
- m_prev = null;
- m_next = null;
- m_linearDamping = param1.linearDamping;
- m_angularDamping = param1.angularDamping;
- m_force._br741(0,0);
- m_torque = 0;
- m_linearVelocity._he34();
- m_angularVelocity = 0;
- m_sleepTime = 0;
- m_invMass = 0;
- m_I = 0;
- m_invI = 0;
- m_mass = param1.massData.mass;
- if(m_mass > 0)
- {
- m_invMass = 1 / m_mass;
- }
- if((m_flags & _th791.e_fixedRotationFlag) == 0)
- {
- m_I = param1.massData.I;
- }
- if(m_I > 0)
- {
- m_invI = 1 / m_I;
- }
- if(m_invMass == 0 && m_invI == 0)
- {
- m_type = e_staticType;
- }
- else
- {
- m_type = e_dynamicType;
- }
- m_userData = param1.userData;
- m_shapeList = null;
- m_shapeCount = 0;
- }
-
- public function _sd781() : Number
- {
- return m_angularVelocity;
- }
-
- public function _lx197(param1:b2Vec2) : b2Vec2
- {
- return _ui293._mx194(m_xf,param1);
- }
-
- public function _jq282() : b2Vec2
- {
- return m_xf.position;
- }
-
- public function _na399() : _fp437
- {
- return m_world;
- }
-
- public function _ix313() : _th791
- {
- return m_next;
- }
-
- public function _lq766() : _ni781
- {
- return m_xf;
- }
-
- public function _sl392(param1:b2Vec2, param2:b2Vec2) : void
- {
- if(_bk718())
- {
- _uo631();
- }
- m_force.x += param1.x;
- m_force.y += param1.y;
- m_torque += (param2.x - m_sweep.c.x) * param1.y - (param2.y - m_sweep.c.y) * param1.x;
- }
-
- public function _ti631(param1:Boolean) : void
- {
- if(param1)
- {
- m_flags |= e_allowSleepFlag;
- }
- else
- {
- m_flags &= ~e_allowSleepFlag;
- _uo631();
- }
- }
-
- public function _fj733() : Number
- {
- return m_mass;
- }
-
- public function _hg747(param1:b2Vec2) : b2Vec2
- {
- var _loc2_:_oh327 = null;
- var _loc3_:b2Vec2 = null;
- _loc2_ = m_xf.R;
- _loc3_ = new b2Vec2(_loc2_.col1.x * param1.x + _loc2_.col2.x * param1.y,_loc2_.col1.y * param1.x + _loc2_.col2.y * param1.y);
- _loc3_.x += m_xf.position.x;
- _loc3_.y += m_xf.position.y;
- return new b2Vec2(m_linearVelocity.x + m_angularVelocity * (_loc3_.y - m_sweep.c.y),m_linearVelocity.x - m_angularVelocity * (_loc3_.x - m_sweep.c.x));
- }
-
- public function _sb691() : void
- {
- var _loc1_:_hx306 = null;
- var _loc2_:Number = NaN;
- var _loc3_:Number = NaN;
- var _loc4_:_fh319 = null;
- var _loc5_:_oh327 = null;
- var _loc6_:b2Vec2 = null;
- var _loc7_:int = 0;
- if(m_world.m_lock == true)
- {
- return;
- }
- m_mass = 0;
- m_invMass = 0;
- m_I = 0;
- m_invI = 0;
- _loc2_ = 0;
- _loc3_ = 0;
- _loc4_ = s_massData;
- _loc1_ = m_shapeList;
- while(_loc1_)
- {
- _loc1_._se554(_loc4_);
- m_mass += _loc4_.mass;
- _loc2_ += _loc4_.mass * _loc4_.center.x;
- _loc3_ += _loc4_.mass * _loc4_.center.y;
- m_I += _loc4_.I;
- _loc1_ = _loc1_.m_next;
- }
- if(m_mass > 0)
- {
- m_invMass = 1 / m_mass;
- _loc2_ *= m_invMass;
- _loc3_ *= m_invMass;
- }
- if(m_I > 0 && (m_flags & e_fixedRotationFlag) == 0)
- {
- m_I -= m_mass * (_loc2_ * _loc2_ + _loc3_ * _loc3_);
- m_invI = 1 / m_I;
- }
- else
- {
- m_I = 0;
- m_invI = 0;
- }
- m_sweep.localCenter._br741(_loc2_,_loc3_);
- _loc5_ = m_xf.R;
- _loc6_ = m_sweep.localCenter;
- m_sweep.c.x = _loc5_.col1.x * _loc6_.x + _loc5_.col2.x * _loc6_.y;
- m_sweep.c.y = _loc5_.col1.y * _loc6_.x + _loc5_.col2.y * _loc6_.y;
- m_sweep.c.x += m_xf.position.x;
- m_sweep.c.y += m_xf.position.y;
- m_sweep.c0._kh737(m_sweep.c);
- _loc1_ = m_shapeList;
- while(_loc1_)
- {
- _loc1_._nw364(m_sweep.localCenter);
- _loc1_ = _loc1_.m_next;
- }
- _loc7_ = m_type;
- if(m_invMass == 0 && m_invI == 0)
- {
- m_type = e_staticType;
- }
- else
- {
- m_type = e_dynamicType;
- }
- if(_loc7_ != m_type)
- {
- _loc1_ = m_shapeList;
- while(_loc1_)
- {
- _loc1_._jt704(m_world.m_broadPhase,m_xf);
- _loc1_ = _loc1_.m_next;
- }
- }
- }
-
- public function _kp162() : Number
- {
- return m_I;
- }
-
- public function _yd753() : b2Vec2
- {
- return m_sweep.c;
- }
-
- public function _dn786(param1:Number) : void
- {
- if(_bk718())
- {
- _uo631();
- }
- m_torque += param1;
- }
-
- public function _vw196() : Boolean
- {
- return (m_flags & e_frozenFlag) == e_frozenFlag;
- }
-
- public function _bk718() : Boolean
- {
- return (m_flags & e_sleepFlag) == e_sleepFlag;
- }
-
- public function _ss678() : _gs664
- {
- return m_jointList;
- }
-
- public function _rn741(param1:b2Vec2) : b2Vec2
- {
- return _ui293._xj516(m_xf.R,param1);
- }
-
- public function _uo631() : void
- {
- m_flags &= ~e_sleepFlag;
- m_sleepTime = 0;
- }
-
- public function _nd202() : Boolean
- {
- return m_type == e_dynamicType;
- }
-
- public function _me458(param1:Number) : void
- {
- m_angularVelocity = param1;
- }
-
- public function _pg676() : b2Vec2
- {
- return m_sweep.localCenter;
- }
-
- public function _jv794(param1:_hx306) : void
- {
- var _loc2_:_hx306 = null;
- var _loc3_:_hx306 = null;
- var _loc4_:Boolean = false;
- if(m_world.m_lock == true)
- {
- return;
- }
- param1._wp50(m_world.m_broadPhase);
- _loc2_ = m_shapeList;
- _loc3_ = null;
- _loc4_ = false;
- while(_loc2_ != null)
- {
- if(_loc2_ == param1)
- {
- if(_loc3_)
- {
- _loc3_.m_next = param1.m_next;
- }
- else
- {
- m_shapeList = param1.m_next;
- }
- _loc4_ = true;
- break;
- }
- _loc3_ = _loc2_;
- _loc2_ = _loc2_.m_next;
- }
- param1.m_body = null;
- param1.m_next = null;
- --m_shapeCount;
- _hx306._ai321(param1,m_world.m_blockAllocator);
- }
-
- public function _gm184() : Number
- {
- return m_sweep.a;
- }
-
- public function _gn198() : void
- {
- m_flags |= e_sleepFlag;
- m_sleepTime = 0;
- m_linearVelocity._he34();
- m_angularVelocity = 0;
- m_force._he34();
- m_torque = 0;
- }
-
- public function _ur192() : Boolean
- {
- return m_type == e_staticType;
- }
-
- public function _vv93(param1:_sw544) : _hx306
- {
- var _loc2_:_hx306 = null;
- if(m_world.m_lock == true)
- {
- return null;
- }
- _loc2_ = _hx306._em71(param1,m_world.m_blockAllocator);
- _loc2_.m_next = m_shapeList;
- m_shapeList = _loc2_;
- ++m_shapeCount;
- _loc2_.m_body = this;
- _loc2_._br217(m_world.m_broadPhase,m_xf);
- _loc2_._nw364(m_sweep.localCenter);
- return _loc2_;
- }
-
- public function _st453(param1:b2Vec2) : b2Vec2
- {
- return _ui293._cq423(m_xf.R,param1);
- }
-
- public function _wv554() : *
- {
- return m_userData;
- }
-
- public function _ya416(param1:*) : void
- {
- m_userData = param1;
- }
-
- public function _tq424() : _hx306
- {
- return m_shapeList;
- }
-
- public function _tp414() : void
- {
- var _loc1_:_oh327 = null;
- var _loc2_:b2Vec2 = null;
- m_xf.R._br741(m_sweep.a);
- _loc1_ = m_xf.R;
- _loc2_ = m_sweep.localCenter;
- m_xf.position.x = m_sweep.c.x - (_loc1_.col1.x * _loc2_.x + _loc1_.col2.x * _loc2_.y);
- m_xf.position.y = m_sweep.c.y - (_loc1_.col1.y * _loc2_.x + _loc1_.col2.y * _loc2_.y);
- }
-
- public function _qg445(param1:Boolean) : void
- {
- if(param1)
- {
- m_flags |= e_bulletFlag;
- }
- else
- {
- m_flags &= ~e_bulletFlag;
- }
- }
-
- public function _le429() : b2Vec2
- {
- return m_linearVelocity;
- }
-
- public function _cr169(param1:b2Vec2, param2:Number) : Boolean
- {
- var _loc3_:_hx306 = null;
- var _loc4_:_oh327 = null;
- var _loc5_:b2Vec2 = null;
- var _loc6_:Boolean = false;
- var _loc7_:Boolean = false;
- if(m_world.m_lock == true)
- {
- return true;
- }
- if(_vw196())
- {
- return false;
- }
- m_xf.R._br741(param2);
- m_xf.position._kh737(param1);
- _loc4_ = m_xf.R;
- _loc5_ = m_sweep.localCenter;
- m_sweep.c.x = _loc4_.col1.x * _loc5_.x + _loc4_.col2.x * _loc5_.y;
- m_sweep.c.y = _loc4_.col1.y * _loc5_.x + _loc4_.col2.y * _loc5_.y;
- m_sweep.c.x += m_xf.position.x;
- m_sweep.c.y += m_xf.position.y;
- m_sweep.c0._kh737(m_sweep.c);
- m_sweep.a0 = m_sweep.a = param2;
- _loc6_ = false;
- _loc3_ = m_shapeList;
- while(_loc3_)
- {
- _loc7_ = _loc3_._ao30(m_world.m_broadPhase,m_xf,m_xf);
- if(_loc7_ == false)
- {
- _loc6_ = true;
- break;
- }
- _loc3_ = _loc3_.m_next;
- }
- if(_loc6_ == true)
- {
- m_flags |= e_frozenFlag;
- m_linearVelocity._he34();
- m_angularVelocity = 0;
- _loc3_ = m_shapeList;
- while(_loc3_)
- {
- _loc3_._wp50(m_world.m_broadPhase);
- _loc3_ = _loc3_.m_next;
- }
- return false;
- }
- m_world.m_broadPhase._ol779();
- return true;
- }
-
- public function _ja306(param1:b2Vec2, param2:b2Vec2) : void
- {
- var _loc3_:_oh327 = null;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- _loc3_ = m_xf.R;
- _loc4_ = param1.x;
- _loc5_ = param1.y;
- param2.x = _loc3_.col1.x * _loc4_ + _loc3_.col2.x * _loc5_;
- param2.y = _loc3_.col1.y * _loc4_ + _loc3_.col2.y * _loc5_;
- param2.x += m_xf.position.x;
- param2.y += m_xf.position.y;
- }
-
- public function _tb756(param1:_fh319) : void
- {
- var _loc2_:_hx306 = null;
- var _loc3_:_oh327 = null;
- var _loc4_:b2Vec2 = null;
- var _loc5_:int = 0;
- if(m_world.m_lock == true)
- {
- return;
- }
- m_invMass = 0;
- m_I = 0;
- m_invI = 0;
- m_mass = param1.mass;
- if(m_mass > 0)
- {
- m_invMass = 1 / m_mass;
- }
- if((m_flags & _th791.e_fixedRotationFlag) == 0)
- {
- m_I = param1.I;
- }
- if(m_I > 0)
- {
- m_invI = 1 / m_I;
- }
- m_sweep.localCenter._kh737(param1.center);
- _loc3_ = m_xf.R;
- _loc4_ = m_sweep.localCenter;
- m_sweep.c.x = _loc3_.col1.x * _loc4_.x + _loc3_.col2.x * _loc4_.y;
- m_sweep.c.y = _loc3_.col1.y * _loc4_.x + _loc3_.col2.y * _loc4_.y;
- m_sweep.c.x += m_xf.position.x;
- m_sweep.c.y += m_xf.position.y;
- m_sweep.c0._kh737(m_sweep.c);
- _loc2_ = m_shapeList;
- while(_loc2_)
- {
- _loc2_._nw364(m_sweep.localCenter);
- _loc2_ = _loc2_.m_next;
- }
- _loc5_ = m_type;
- if(m_invMass == 0 && m_invI == 0)
- {
- m_type = e_staticType;
- }
- else
- {
- m_type = e_dynamicType;
- }
- if(_loc5_ != m_type)
- {
- _loc2_ = m_shapeList;
- while(_loc2_)
- {
- _loc2_._jt704(m_world.m_broadPhase,m_xf);
- _loc2_ = _loc2_.m_next;
- }
- }
- }
-
- public function _bd186(param1:_th791) : Boolean
- {
- var _loc2_:_gs664 = null;
- _loc2_ = m_jointList;
- while(_loc2_)
- {
- if(_loc2_.other == param1)
- {
- return _loc2_.joint.m_collideConnected == false;
- }
- _loc2_ = _loc2_.next;
- }
- return false;
- }
-
- public function _nt224() : Boolean
- {
- var _loc1_:_ni781 = null;
- var _loc2_:_oh327 = null;
- var _loc3_:b2Vec2 = null;
- var _loc4_:_hx306 = null;
- var _loc5_:Boolean = false;
- _loc1_ = s_xf1;
- _loc1_.R._br741(m_sweep.a0);
- _loc2_ = _loc1_.R;
- _loc3_ = m_sweep.localCenter;
- _loc1_.position.x = m_sweep.c0.x - (_loc2_.col1.x * _loc3_.x + _loc2_.col2.x * _loc3_.y);
- _loc1_.position.y = m_sweep.c0.y - (_loc2_.col1.y * _loc3_.x + _loc2_.col2.y * _loc3_.y);
- _loc5_ = true;
- _loc4_ = m_shapeList;
- while(_loc4_)
- {
- _loc5_ = _loc4_._ao30(m_world.m_broadPhase,_loc1_,m_xf);
- if(_loc5_ == false)
- {
- break;
- }
- _loc4_ = _loc4_.m_next;
- }
- if(_loc5_ == false)
- {
- m_flags |= e_frozenFlag;
- m_linearVelocity._he34();
- m_angularVelocity = 0;
- _loc4_ = m_shapeList;
- while(_loc4_)
- {
- _loc4_._wp50(m_world.m_broadPhase);
- _loc4_ = _loc4_.m_next;
- }
- return false;
- }
- return true;
- }
-
- public function _dx743(param1:b2Vec2, param2:b2Vec2) : void
- {
- if(_bk718())
- {
- _uo631();
- }
- m_linearVelocity.x += m_invMass * param1.x;
- m_linearVelocity.y += m_invMass * param1.y;
- m_angularVelocity += m_invI * ((param2.x - m_sweep.c.x) * param1.y - (param2.y - m_sweep.c.y) * param1.x);
- }
-
- public function _dd348(param1:Number) : void
- {
- m_sweep._dd348(param1);
- m_sweep.c._kh737(m_sweep.c0);
- m_sweep.a = m_sweep.a0;
- _tp414();
- }
-
- public function _xy71(param1:b2Vec2) : void
- {
- m_linearVelocity._kh737(param1);
- }
-
- public function _nm713(param1:b2Vec2) : b2Vec2
- {
- return new b2Vec2(m_linearVelocity.x - m_angularVelocity * (param1.y - m_sweep.c.y),m_linearVelocity.y + m_angularVelocity * (param1.x - m_sweep.c.x));
- }
-
- public function _fj808() : Boolean
- {
- return (m_flags & e_bulletFlag) == e_bulletFlag;
- }
-
- public function _pj447(param1:b2Vec2) : b2Vec2
- {
- var _loc2_:_oh327 = null;
- var _loc3_:b2Vec2 = null;
- _loc2_ = m_xf.R;
- _loc3_ = new b2Vec2(_loc2_.col1.x * param1.x + _loc2_.col2.x * param1.y,_loc2_.col1.y * param1.x + _loc2_.col2.y * param1.y);
- _loc3_.x += m_xf.position.x;
- _loc3_.y += m_xf.position.y;
- return _loc3_;
- }
- }
- }
-
-